/**
 * Copyright(c) 2013 Jade Techonologies Co., Ltd.
 *
 * History:
 *   13-4-23 下午10:30 Created by dwzhang
 */
package com.jade.framework.base.criterion.sql;

import com.jade.framework.base.criterion.Constants;
import com.jade.framework.base.criterion.CriterionInterpreter;
import com.jade.framework.base.criterion.Order;

/**
 * 把Order转换成SQL语句。
 *
 * @author dwzhang
 * @version 1.0 13-4-23 下午10:30
 */
public class OrderInterpreter implements CriterionInterpreter<SqlContext, Order>
{
    /**
     * 对表达式进行解析，形成可以用于实际查询的上下文。
     *
     * @param context 解析上下文。
     * @param order   需要解析的对象，包括表达式、Order等等。
     */
    public void interprete(SqlContext context, Order order)
    {
        context.append(order.getFullName());
        context.append(Constants.BLANK);
        if (order.isAscending()) {
            context.append(Constants.ASC);
        }
        else {
            context.append(Constants.DESC);
        }
    }
}
